upstream
을 활용한 로드 밸런싱NGINX는 여러 개의 백엔드 서버에 트래픽을 분산할 수 있습니다. 이를 위해 upstream
블록을 사용합니다.
upstream backend {
server 192.168.1.101;
server 192.168.1.102;
server 192.168.1.103;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
✔️ 요청이 순차적으로 서버에 분배
현재 연결 수가 가장 적은 서버로 요청을 전달합니다.
upstream backend {
least_conn;
server 192.168.1.101;
server 192.168.1.102;
server 192.168.1.103;
}
✔️ 서버 부하를 최소화하는데 유용
keepalive
및 fail_timeout
설정upstream backend {
server 192.168.1.101;
server 192.168.1.102;
keepalive 32;
}
✔️ 클라이언트와 백엔드 간의 연결을 유지하여 성능을 항샹
upstream backend {
server 192.168.1.101 fail_timeout=10s max_fails=3;
server 192.168.1.102;
}
✔️ 10초 동안 3번 실패하면 해당 서버를 일시적으로 제외
gzip on;
gzip_types text/plain text/css application/json application/javascript;
gzip_min_length 1000;
✔️ 응답 크기를 줄여 속도를 개선 (1KB 이상이고 파입 타입이 맞는 경우 압축)
location /static/ {
expires 30d;
add_header Cache-Control "public, max-age=2592000";
}
✔️ 정적 파일을 30일 동안 캐싱하여 성능 최적화화